# - 定义一个圆形类,半径是这个圆形的属性,实例化一个半径为5的圆形,一个半径为10的圆形，定义方法计算圆形的面积和周长
class Yuan():

    def __init__(self, value):
        self.r = value

    def getArea(self):
        """
        计算圆的面积
        :return: 面积
        """
        area = 3.14*self.r**2
        return area

    def getPerimeter(self):
        """
        计算圆的周长
        :return: 周长
        """
        perimeter = 2*3.14*self.r
        return perimeter

    def func(self):
        print("当前圆形，半径为：{}，面积为：{}，周长为：{}".format(self.r, self.getArea(), self.getPerimeter()))

# yuan_5 = Yuan(5)
# yuan_10 = Yuan(10)
# yuan_5.func()
# yuan_10.func()
# print(yuan_5.getArea())
# print(yuan_5.getPerimeter())
# print(yuan_10.getArea())
# print(yuan_10.getPerimeter())

# - 补充代码，实现用户登录和注册
class User:
    def __init__(self, name, pwd):
        self.name = name
        self.pwd = pwd


class Account:
    def __init__(self):
        # 用户列表，数据格式：[user对象，user对象，user对象]
        self.user_list = []

    def login(self):
        """
        用户登录，输入用户名和密码然后去self.user_list中校验用户合法性
        :return:
        """
        print("正在使用登录功能，请安说明输入内容。".center(50, "*"))
        while True:
            status = False
            name = input("请输入用户名：")
            pwd = input("请输入用户密码：")
            for user in self.user_list:
                if name == user.name and pwd == user.pwd:
                    status = True
                    print("用户登录成功！".format(50, "*"))
                    break
            if status == False:
                print("用户名或密码输入错误，请重新输入。".center(50, "*"))
            else:
                break


    def register(self):
        """
        用户注册，没注册一个用户就创建一个user对象，然后添加到self.user_list中，表示注册成功。
        :return:
        """
        print("正在使用注册功能，请按说明输入内容。".center(50, "*"))
        while True:
            name = input("请输入用户名：")
            if name in [user.name for user in self.user_list]:
                print("用户名重复，请重新输入！")
            else:
                pwd = input("请输入用户密码：")
                self.user_list.append(User(name, pwd))
                break
        print([(user.name, user.pwd) for user in self.user_list])
        print("用户注册成功！".center(50, "*"))

    def run(self):
        """
        主程序
        :return:
        """
        print('欢迎使用本系统'.center(50, "*"))
        while True:
            key = input("请选择你要使用的功能，登录请按1，注册请按2，退出请按*：")
            if key == '1':
                self.login()
            elif key == '2':
                self.register()
            elif key == '*':
                break
            else:
                print("输入错误，请重新输入！".center(50, "*"))
        print('正在退出系统，欢迎下次使用'.center(50, "*"))

if __name__ == '__main__':
    obj = Account()
    obj.run()

# # 写函数，判断用户传入的对象（字符串、列表、元组）长度是否大于5。
# def func(value):
#     if len(value) > 5:
#         return True
#     else:
#         return False
#
# value = [1, 2, 3, 4]
# print(func(value))